package cn.edu.shou.lab.homework.work1.jcc.operation;

import cn.edu.shou.lab.homework.work1.jcc.commonMethod.ComMethod;

import java.io.File;
import java.util.Scanner;

public class Service {

    //这里是根据用户的输入,来完成相应的操作
    public static void service(File file) {
        ComMethod.init(file);//初始化文件以及文件中的map对象
        Scanner in = new Scanner(System.in);
        int status;//输入的选项
        int clsid;//班级编号
        int stuid;//学生id
        String name;
        String sex;
        int age;
        int opt = 0;//修改操作使用的参数标记
        String optStr = "";//修改操作使用的通用字符串
        String tip = "请输入可选操作的对应标号为: 1->登陆,2->注册,3->列出指定班级的所有学生,4->注销学生信息,5->修改学生信息,0->退出";
        System.out.println(tip);
        status = in.nextInt();
        while (status != 0) {
            switch (status) {
                case 0://对应退出选项
                    break;
                case 1://对应登陆选项
                    System.out.println("请输入你的班级编号:");
                    clsid = in.nextInt();
                    System.out.println("请输入你的学号:");
                    stuid = in.nextInt();
                    ComMethod.login(clsid, stuid, file);
                    System.out.println(tip);
                    status = in.nextInt();
                    break;
                case 2://对应注册选项
                    System.out.println("请输入所在班级编号(编号1-5):");
                    clsid = in.nextInt();
                    System.out.println("请输入学生姓名,性别(注意:中间使用空格隔开):");
                    name = in.next();
                    sex = in.next();
                    System.out.println("请输入学生年龄:");
                    age = in.nextInt();
                    stuid = ComMethod.addStudent(clsid, name, sex, age, file);
                    if (stuid != -1) System.out.println("注册成功," + name + " 你的学号为: " + stuid + " 请务必记住");
                    System.out.println(tip);
                    status = in.nextInt();
                    break;
                case 3://对应列出所有学生选项
                    System.out.println("请输入班级编号(编号1-5):");
                    clsid = in.nextInt();
                    ComMethod.listClassStudent(clsid, file);
                    System.out.println(tip);
                    status = in.nextInt();
                    break;
                case 4://对应注销学生选项
                    System.out.println("请输入要注销学生所在的班级编号(编号1-5):");
                    clsid = in.nextInt();
                    System.out.println("请输入要注销学生的学号:");
                    stuid = in.nextInt();
                    if (ComMethod.deleteStudent(clsid, stuid, file)) System.out.println("注销成功");
                    else System.out.println("注销失败,此学生信息不存在,请检查输入信息是否有误,或者该学生已被注销.");
                    System.out.println(tip);
                    status = in.nextInt();
                    break;
                case 5://对应修改信息选项
                    System.out.println("请输入要修改的学生所在的班级编号(编号1-5):");
                    clsid = in.nextInt();
                    System.out.println("请输入要修改的学生的学号:");
                    stuid = in.nextInt();
                    System.out.println("请输入要修改的选项编号: 1->姓名,2->性别,3->年龄");
                    int option = in.nextInt();
                    switch (option) {
                        case 1:
                            System.out.println("请输入姓名:");
                            optStr = in.next();
                            opt = 1;
                            break;
                        case 2:
                            System.out.println("请输入性别:");
                            optStr = in.next();
                            opt = 2;
                            break;
                        case 3:
                            System.out.println("请输入年龄:");
                            optStr = in.next();
                            opt = 3;
                            break;
                    }
                    ComMethod.updateInfo(clsid, stuid, optStr, opt, file);
                    System.out.println(tip);
                    status = in.nextInt();
                    break;
            }
        }
    }
}
